package com.movisol.messengerprofileservice.interfaces;

import com.movisol.messengerprofileservice.data.Friends;
import com.movisol.messengerprofileservice.data.UserProfile;
import com.movisol.messengerprofileservice.interfaces.errorcodes.FriendStatus;
import com.movisol.messengerprofileservice.interfaces.errorcodes.SaveUserProfileErrorCodes;
import com.movisol.messengerprofileservice.interfaces.errorcodes.UpdateFriendsErrorCodes;
import com.movisol.messengerprofileservice.interfaces.errorcodes.UserNotificationUpdatedErrorCodes;


public interface IProfileServiceManager {//extends IUserProfileDataLoadedListener, IUserNotificationUpdateListener, IFriendsDataLoadedListener{
	
	public SaveUserProfileErrorCodes saveUserProfileErrorCodes = new SaveUserProfileErrorCodes();
	public UpdateFriendsErrorCodes updateFriendsErrorCodes = new UpdateFriendsErrorCodes();
	public UserNotificationUpdatedErrorCodes userNotificationUpdatedErrorCodes = new UserNotificationUpdatedErrorCodes();
	public FriendStatus friendStatus = new FriendStatus();

	/**
	 * If profileData has an email not registered yet, it will create a new UserProfile
	 * Anyway, it returns the data associated to the profile, registered or not
	 * @param profileData Data of the user profile
	 * @return the response from the server
	 */
	String saveUserProfile(UserProfile profileData);
	
	/**
	 * Retrieves the user friends list associated to the current user profile from the server
	 * @param sku Stock-keeping unit for this application
	 * @param version current version of the code
	 * @param languageId current active language identification
	 * @param userId user identification got from the initial connection to the server
	 * @param signature signature made up with the userId and a secret phrase
	 * @return the response from the server
	 */
	String getUserFriends(String sku, String version, String languageId, String userId, String signature);
	
	String updateUserFriends(String sku, String version, String languageId, String userId, Friends friends);
	
	String updateUserNotificacion(String sku, String version, String medium, String mediumId);
	
	
	

}
